������������
��ʹ�� SQL ��ѯ���з�ҳʱ��LIMIT
�� ORDER BY
���������õ��Ӿ䡣ORDER BY
����ָ��������У��� LIMIT
�������Ʒ��صļ�¼����Ȼ������ ORDER BY
������ create_time
���д����ظ�ֵʱ���Ϳ��ܳ��ַ�ҳ���⡣
ԭ�����
����Ψһ����
create_time
���ظ�ֵʱ�����ݿ��ڷ��ؽ��ʱ������Щ������ͬcreate_time
�ļ�¼û�й̶�������˳������ζ�ţ���ʹ����ִ����ͬ�IJ�ѯ��������ͬcreate_time
�ļ�¼��˳��Ҳ���ܲ�ͬ����ҳ�߽��������������ڷ�ҳʱ��ÿҳ��ʾ�̶������ļ�¼�������ҳ֮��ı߽紦�ж�����¼������ͬ��
create_time
ֵ����Щ��¼���ܻ��ڲ�ͬ��ҳ�г��֣����������β�ѯ�е�˳��ͬ�������ظ����ֻ���©��
ʾ������
�������������ݣ�
1 | id | create_time |
���ÿҳ��ʾ2����¼�����ܳ������������
- ��һ�β�ѯ���ܷ��� ID 1 �� 2��
- �ڶ��β�ѯ���ܷ��� ID 2 �� 3��ID 2 �ظ����֣���
- ���ߵ�һ�η��� ID 1 �� 3���ڶ��η��� ID 2 �� 4��������©����
�������
Ϊ�˱����������⣬���Բ�ȡ���¼��ֽ��������
ʹ��Ψһ����Ϊ��Ҫ����������
��ORDER BY
�Ӿ�������һ��Ψһ������id
����Ϊ��Ҫ������������������ȷ����������ȷ���Եģ���ʹcreate_time
���ظ�ֵ��1
2SELECT * FROM table ORDER BY create_time, id LIMIT 2 OFFSET 0; -- ��һҳ
SELECT * FROM table ORDER BY create_time, id LIMIT 2 OFFSET 2; -- �ڶ�ҳʹ���α��ҳ��
������һҳ���һ����¼��ֵ��ȷ����һҳ�Ŀ�ʼλ�á����ַ������Ա�����Ϊ����Ψһ�����µ����⡣1
2
3
4
5
6
7
8
9-- ��һҳ
SELECT * FROM table ORDER BY create_time, id LIMIT 10;
-- ����ҳ��������һҳ���һ����¼�� create_time �� id �ֱ�Ϊ last_seen_time �� last_seen_id��
SELECT * FROM table
WHERE (create_time > 'last_seen_time')
OR (create_time = 'last_seen_time' AND id > last_seen_id)
ORDER BY create_time, id
LIMIT 10;ʹ�ô��ں�����ijЩ���ݿ�֧�֣���
ʹ�ô��ں�����ROW_NUMBER()
��Ϊÿ�з���һ��Ψһ���кţ�Ȼ������кŽ��з�ҳ��1
2
3
4SELECT * FROM (
SELECT *, ROW_NUMBER() OVER (ORDER BY create_time, id) as row_num
FROM table
) t WHERE row_num BETWEEN 11 AND 20; -- ����Ҫ��ѯ��2ҳ��ÿҳ10����¼
����
�� ORDER BY
�������ظ�ֵʱ������ʹ�� LIMIT
��ҳȷʵ���ܵ��������ظ�����©��Ϊ��ȷ����ҳ�����һ���ԣ����ʵ��������һ��Ψһ����Ϊ��Ҫ��������������ʹ���α��ҳ�����ں����ȸ����ӵķ�ҳ��������Щ��������ȷ����ʹ�� ORDER BY
�������ظ�ֵ������£���ҳ���Ҳ��ȷ����һ�µġ�